package br.gov.mi.corporativo.dominio.comum;

// default package
// Generated 12/11/2014 10:19:36 by Hibernate Tools 4.0.0

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Immutable;

/**
 * PessoaFisicaEscolaridade generated by hbm2java
 */
@Entity @Immutable
@Table(schema="DES_COMUM",name = "PESSOA_FISICA_ESCOLARIDADE")
public final class PessoaFisicaEscolaridade implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3133619970154586740L;
	
	@Id
	@Column(name = "ID_PESSOA_FISICA_ESCOLARIDADE", unique = true, nullable = false, precision = 22, scale = 0)
	private Long idPessoaFisicaEscolaridade;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PESSOA_FISICA", nullable = false)
	private PessoaFisica pessoaFisica;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_INSTITUICAO_ENSINO", nullable = false)
	private InstituicaoEnsino instituicaoEnsino;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TIPO_ESCOLARIDADE", nullable = false)
	private TipoEscolaridade tipoEscolaridade;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_INICIO", nullable = false, length = 7)
	private Date dtInicio;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_CONCLUSAO", length = 7)
	private Date dtConclusao;

	public PessoaFisicaEscolaridade() {
	}

	public PessoaFisicaEscolaridade(Long idPessoaFisicaEscolaridade,
			PessoaFisica pessoaFisica, InstituicaoEnsino instituicaoEnsino,
			TipoEscolaridade tipoEscolaridade, Date dtInicio) {
		this.idPessoaFisicaEscolaridade = idPessoaFisicaEscolaridade;
		this.pessoaFisica = pessoaFisica;
		this.instituicaoEnsino = instituicaoEnsino;
		this.tipoEscolaridade = tipoEscolaridade;
		this.dtInicio = dtInicio;
	}

	public PessoaFisicaEscolaridade(Long idPessoaFisicaEscolaridade,
			PessoaFisica pessoaFisica, InstituicaoEnsino instituicaoEnsino,
			TipoEscolaridade tipoEscolaridade, Date dtInicio, Date dtConclusao) {
		this.idPessoaFisicaEscolaridade = idPessoaFisicaEscolaridade;
		this.pessoaFisica = pessoaFisica;
		this.instituicaoEnsino = instituicaoEnsino;
		this.tipoEscolaridade = tipoEscolaridade;
		this.dtInicio = dtInicio;
		this.dtConclusao = dtConclusao;
	}

	
	public Long getIdPessoaFisicaEscolaridade() {
		return this.idPessoaFisicaEscolaridade;
	}

	
	public PessoaFisica getPessoaFisica() {
		return this.pessoaFisica;
	}

	
	public InstituicaoEnsino getInstituicaoEnsino() {
		return this.instituicaoEnsino;
	}

	
	public TipoEscolaridade getTipoEscolaridade() {
		return this.tipoEscolaridade;
	}

	
	public Date getDtInicio() {
		return this.dtInicio;
	}

	
	public Date getDtConclusao() {
		return this.dtConclusao;
	}

}
